/***************************************************
 @Name :        小铭同学
 @Time :        2025-09-03
 @Email :       LiaoMingWJ233@163.com
 @Comment :     对话窗口： 头像 昵称 消息气泡 创建
 @FileName :    chatmessageitem.h
 @Version :     1.0
****************************************************/


#ifndef CHATMESSAGEITEM_H
#define CHATMESSAGEITEM_H

#include <QWidget>
#include <QLabel>
#include <QPixmap>

// 消息类型枚举：左侧（他人消息）和右侧（自己消息）
enum MessageType {
    MessageType_Left,    // 左侧消息
    MessageType_Right    // 右侧消息
};

class ChatMessageItem : public QWidget
{
    Q_OBJECT
public:
    explicit ChatMessageItem(QWidget *parent = nullptr, MessageType type = MessageType_Left);
    
    // 设置消息内容
    void setMessage(const QString &nickname, const QString &content, const QPixmap &avatar);
    // 计算合适的高度
    int calculateHeight() const;

protected:
    void resizeEvent(QResizeEvent *event) override;

private:
    // 初始化UI
    void initUI();
    // 更新布局
    void updateLayout();

    MessageType m_type;          // 消息类型（左/右）
    QLabel *m_avatarLabel;       // 头像标签
    QLabel *m_nicknameLabel;     // 昵称标签
    QLabel *m_contentLabel;      // 内容标签
    QPixmap m_avatar;            // 头像图片
    QString m_nickname;          // 昵称文本
    QString m_content;           // 内容文本
};

#endif // CHATMESSAGEITEM_H
